[SOLVED] [Bug] Slackware64-14.2 gcc fails to link with libmvec_nonshared.a
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
That's what I meant in Post #2 -- the install/doinst.sh script from the glibc Package is overwriting the linker script file as a symlink.
See lines 148 and 149.
EDIT: p.s. the fix looks about the same as for libpthread.so at lines 138 and 139
-- kjh
# one way to print install/doinst.sh with numbered lines.
#
# cd /tmp/glibc-2.23 ; gawk '{ printf( "%3d: %s\n", FNR, $0 )}' install/doinst.sh
Code:
1: #!/bin/sh
2: # Copyright (C) 2002, 2005 Slackware Linux, Inc.
3: # Copyright 2005, 2006, 2007, 2011, 2012 Patrick J. Volkerding, Sebeka, Minnesota, USA
4: #
5: # This program is free software; you can redistribute it and/or
6: # modify it under the terms of the GNU General Public License
7: # as published by the Free Software Foundation; either version 2
8: # of the License, or (at your option) any later version.
9: #
10: # This program is distributed in the hope that it will be useful,
11: # but WITHOUT ANY WARRANTY; without even the implied warranty of
12: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13: # GNU General Public License for more details.
14: #
15: # Swap glibc on the fly.
16: #
17: # If we're on a running system we have to handle this _very_ carefully. :-)
18: # The tricks involved here get trickier every time...
19:
20: # OK, now we have to be sure of a few things. First, you do have a 2.6
21: # kernel running, right?
22:
23: if [ -r /proc/ksyms ]; then
24: echo "FATAL: you need to be running a 2.6.x kernel in order to upgrade"
25: echo "to this version of glibc."
26: echo
27: sleep 999
28: exit 1
29: fi
30:
31: # Next, stop using the /lib64/ntpl libraries. These are now obsolete and
32: # will break the installation if present:
33: if [ -d lib64/tls ]; then
34: mkdir -p lib64/obsolete
35: mv lib64/tls lib64/obsolete
36: fi
37: if [ -x sbin/ldconfig ]; then
38: sbin/ldconfig -r .
39: fi
40:
41: # Install NPTL glibc libraries:
42: if [ -x /sbin/ldconfig -a -d lib64/incoming ]; then # swap on the fly
43: # First create copies of the incoming libraries:
44: ( cd lib64/incoming
45: for file in * ; do
46: if [ ! -r ../${file}.incoming ]; then
47: cp -a $file ../${file}.incoming
48: fi
49: done
50: )
51: # Then switch to them all at once:
52: /sbin/ldconfig -l lib64/*.incoming 2> /dev/null
53: # Finally, rename them and clean up:
54: ( cd lib64
55: for file in *.incoming ; do
56: rm -f `basename $file .incoming`
57: cp -a $file `basename $file .incoming`
58: /sbin/ldconfig -l `basename $file .incoming`
59: rm -f $file
60: done
61: )
62: else # no ldconfig? Good, it's safe to just jam it on home (and make links below):
63: ( cd lib64/incoming
64: for file in * ; do
65: cp -a $file ..
66: done
67: )
68: fi
69: # Now, get rid of the temporary directory:
70: rm -rf lib64/incoming
71: # Done installing NPTL glibc libraries.
72:
73: # Handle config files:
74: config() {
75: NEW="$1"
76: OLD="$(dirname $NEW)/$(basename $NEW .new)"
77: # If there's no config file by that name, mv it over:
78: if [ ! -r $OLD ]; then
79: mv $NEW $OLD
80: elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then # toss the redundant copy
81: rm $NEW
82: fi
83: # Otherwise, we leave the .new copy for the admin to consider...
84: }
85: config etc/nscd.conf.new
86: config etc/profile.d/glibc.csh.new
87: config etc/profile.d/glibc.sh.new
88: # Clearly you already decided this issue. :-)
89: rm -f etc/profile.d/glibc.csh.new
90: rm -f etc/profile.d/glibc.sh.new
91:
92: # In case there's no ldconfig, make the links manually:
93: if [ ! -x /sbin/ldconfig ]; then
94: ( cd lib64 ; rm -rf libnss_nis.so.2 )
95: ( cd lib64 ; ln -sf libnss_nis-2.23.so libnss_nis.so.2 )
96: ( cd lib64 ; rm -rf libm.so.6 )
97: ( cd lib64 ; ln -sf libm-2.23.so libm.so.6 )
98: ( cd lib64 ; rm -rf libnss_files.so.2 )
99: ( cd lib64 ; ln -sf libnss_files-2.23.so libnss_files.so.2 )
100: ( cd lib64 ; rm -rf libresolv.so.2 )
101: ( cd lib64 ; ln -sf libresolv-2.23.so libresolv.so.2 )
102: ( cd lib64 ; rm -rf libnsl.so.1 )
103: ( cd lib64 ; ln -sf libnsl-2.23.so libnsl.so.1 )
104: ( cd lib64 ; rm -rf libutil.so.1 )
105: ( cd lib64 ; ln -sf libutil-2.23.so libutil.so.1 )
106: ( cd lib64 ; rm -rf libnss_compat.so.2 )
107: ( cd lib64 ; ln -sf libnss_compat-2.23.so libnss_compat.so.2 )
108: ( cd lib64 ; rm -rf libthread_db.so.1 )
109: ( cd lib64 ; ln -sf libthread_db-1.0.so libthread_db.so.1 )
110: ( cd lib64 ; rm -rf libnss_hesiod.so.2 )
111: ( cd lib64 ; ln -sf libnss_hesiod-2.23.so libnss_hesiod.so.2 )
112: ( cd lib64 ; rm -rf libanl.so.1 )
113: ( cd lib64 ; ln -sf libanl-2.23.so libanl.so.1 )
114: ( cd lib64 ; rm -rf libcrypt.so.1 )
115: ( cd lib64 ; ln -sf libcrypt-2.23.so libcrypt.so.1 )
116: ( cd lib64 ; rm -rf libBrokenLocale.so.1 )
117: ( cd lib64 ; ln -sf libBrokenLocale-2.23.so libBrokenLocale.so.1 )
118: ( cd lib64 ; rm -rf ld-linux-x86-64.so.2 )
119: ( cd lib64 ; ln -sf ld-2.23.so ld-linux-x86-64.so.2 )
120: ( cd lib64 ; rm -rf libdl.so.2 )
121: ( cd lib64 ; ln -sf libdl-2.23.so libdl.so.2 )
122: ( cd lib64 ; rm -rf libnss_dns.so.2 )
123: ( cd lib64 ; ln -sf libnss_dns-2.23.so libnss_dns.so.2 )
124: ( cd lib64 ; rm -rf libpthread.so.0 )
125: ( cd lib64 ; ln -sf libpthread-2.23.so libpthread.so.0 )
126: ( cd lib64 ; rm -rf libnss_nisplus.so.2 )
127: ( cd lib64 ; ln -sf libnss_nisplus-2.23.so libnss_nisplus.so.2 )
128: ( cd lib64 ; rm -rf libc.so.6 )
129: ( cd lib64 ; ln -sf libc-2.23.so libc.so.6 )
130: ( cd lib64 ; rm -rf librt.so.1 )
131: ( cd lib64 ; ln -sf librt-2.23.so librt.so.1 )
132: fi
133:
134: # More links:
135: ( cd usr/lib64 ; rm -rf libnss_nisplus.so )
136: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_nisplus.so.2 libnss_nisplus.so )
137: # This is now a linker script:
138: #( cd usr/lib64 ; rm -rf libpthread.so )
139: #( cd usr/lib64 ; ln -sf ../../lib64/libpthread.so.0 libpthread.so )
140: ( cd usr/lib64 ; rm -rf libresolv.so )
141: ( cd usr/lib64 ; ln -sf ../../lib64/libresolv.so.2 libresolv.so )
142: ( cd usr/lib64 ; rm -rf libnsl.so )
143: ( cd usr/lib64 ; ln -sf ../../lib64/libnsl.so.1 libnsl.so )
144: ( cd usr/lib64 ; rm -rf libnss_hesiod.so )
145: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_hesiod.so.2 libnss_hesiod.so )
146: ( cd usr/lib64 ; rm -rf libnss_files.so )
147: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_files.so.2 libnss_files.so )
148: ( cd usr/lib64 ; rm -rf libm.so )
149: ( cd usr/lib64 ; ln -sf ../../lib64/libm.so.6 libm.so )
150: ( cd usr/lib64 ; rm -rf libutil.so )
151: ( cd usr/lib64 ; ln -sf ../../lib64/libutil.so.1 libutil.so )
152: ( cd usr/lib64 ; rm -rf libnss_compat.so )
153: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_compat.so.2 libnss_compat.so )
154: ( cd usr/lib64 ; rm -rf libthread_db.so )
155: ( cd usr/lib64 ; ln -sf ../../lib64/libthread_db.so.1 libthread_db.so )
156: ( cd usr/lib64 ; rm -rf libcrypt.so )
157: ( cd usr/lib64 ; ln -sf ../../lib64/libcrypt.so.1 libcrypt.so )
158: ( cd usr/lib64 ; rm -rf libBrokenLocale.so )
159: ( cd usr/lib64 ; ln -sf ../../lib64/libBrokenLocale.so.1 libBrokenLocale.so )
160: ( cd usr/lib64 ; rm -rf libdl.so )
161: ( cd usr/lib64 ; ln -sf ../../lib64/libdl.so.2 libdl.so )
162: ( cd usr/lib64 ; rm -rf libnss_dns.so )
163: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_dns.so.2 libnss_dns.so )
164: ( cd usr/lib64 ; rm -rf librt.so )
165: ( cd usr/lib64 ; ln -sf ../../lib64/librt.so.1 librt.so )
166: ( cd usr/lib64 ; rm -rf libanl.so )
167: ( cd usr/lib64 ; ln -sf ../../lib64/libanl.so.1 libanl.so )
168: ( cd usr/lib64 ; rm -rf libnss_nis.so )
169: ( cd usr/lib64 ; ln -sf ../../lib64/libnss_nis.so.2 libnss_nis.so )
170: ( cd usr/share/zoneinfo ; rm -rf localtime )
171: ( cd usr/share/zoneinfo ; ln -sf /etc/localtime localtime )
172: ( cd bin ; rm -rf sln )
173: ( cd bin ; ln -sf /sbin/sln sln )
174:
175: # Reload to prevent init from holding a stale handle to glibc on shutdown:
176: if [ -x /sbin/telinit ]; then
177: /sbin/telinit u
178: fi
Last edited by kjhambrick; 08-16-2016 at 10:55 AM.
Reason: add p.s.
patches/packages/glibc-2.23-x86_64-4_slack14.2.txz: Rebuilt.
Fixed a regression with the recent glibc patch packages:
Don't clobber the libm.so linker script with a symlink.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.